package org.jsola.hr.vo.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.vo.BaseVO;

import java.util.Date;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.E_SITE_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.core.example.BaseExample.N_SITE_ID;
import static org.jsola.hr.example.AttendPunchCalibrationExample.E_REMARK;
import static org.jsola.hr.example.AttendPunchCalibrationExample.N_REMARK;
import static org.jsola.hr.example.AttendPunchRecordExample.*;
import static org.jsola.hr.example.AttendPunchRecordExample.E_WORK_DATE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_EMP_PHOTO;
import static org.jsola.hr.example.AttendPunchRecordExample.E_ATTEND_PLAN_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.E_ATTEND_PLAN_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_COMPANY_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.E_COMPANY_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_COORDINATE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_DAY;
import static org.jsola.hr.example.AttendPunchRecordExample.E_DECISION_DESC;
import static org.jsola.hr.example.AttendPunchRecordExample.E_DEPT_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.E_DEPT_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_EMP_INFO_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.E_EMP_INFO_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_HIS_PUNCH_STATUS;
import static org.jsola.hr.example.AttendPunchRecordExample.E_HIS_PUNCH_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_HIS_STANDARD_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_IS_CALIBRATION;
import static org.jsola.hr.example.AttendPunchRecordExample.E_IS_MAKE_UP;
import static org.jsola.hr.example.AttendPunchRecordExample.E_LOCATION;
import static org.jsola.hr.example.AttendPunchRecordExample.E_MINUTE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_MONTH;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_RANGE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_SERIAL;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_SOURCE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_STATUS;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_TYPE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_WIFI;
import static org.jsola.hr.example.AttendPunchRecordExample.E_STANDARD_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_WORK_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_YEAR;
import static org.jsola.hr.example.AttendPunchRecordExample.N_ATTEND_PLAN_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.N_ATTEND_PLAN_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_COMPANY_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.N_COMPANY_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_COORDINATE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_DAY;
import static org.jsola.hr.example.AttendPunchRecordExample.N_DECISION_DESC;
import static org.jsola.hr.example.AttendPunchRecordExample.N_DEPT_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.N_DEPT_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_EMP_INFO_ID;
import static org.jsola.hr.example.AttendPunchRecordExample.N_EMP_INFO_NAME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_HIS_PUNCH_STATUS;
import static org.jsola.hr.example.AttendPunchRecordExample.N_HIS_PUNCH_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_HIS_STANDARD_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_IS_CALIBRATION;
import static org.jsola.hr.example.AttendPunchRecordExample.N_IS_MAKE_UP;
import static org.jsola.hr.example.AttendPunchRecordExample.N_LOCATION;
import static org.jsola.hr.example.AttendPunchRecordExample.N_MINUTE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_MONTH;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_RANGE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_SERIAL;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_SOURCE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_STATUS;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_TYPE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_WIFI;
import static org.jsola.hr.example.AttendPunchRecordExample.N_STANDARD_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_WORK_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_YEAR;

/**
 *【考勤打卡记录】excel导出对象
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class AttendPunchRecordExportVO extends BaseVO {

    private static final long serialVersionUID = 1L;

//    @ExcelProperty(value = N_ID)
//    private String id;
//
//    @ExcelProperty(value = N_COMPANY_ID)
//    private String companyId;
//
//    @ExcelProperty(value = N_COMPANY_NAME)
//    private String companyName;
//
//    @ExcelProperty(value = N_DEPT_ID)
//    private String deptId;
//
//    @ExcelProperty(value = N_DEPT_NAME)
//    private String deptName;
//
//    @ExcelProperty(value = N_EMP_INFO_ID)
//    private String empInfoId;

    @ExcelProperty(value = N_EMP_INFO_NAME)
    private String empInfoName;

//    @ExcelProperty(value = N_ATTEND_PLAN_ID)
//    private String attendPlanId;

    @ExcelProperty(value = N_ATTEND_PLAN_NAME)
    private String attendPlanName;

//    @ExcelProperty(value = N_YEAR)
//    private String year;
//
//    @ExcelProperty(value = N_MONTH)
//    private String month;
//
//    @ExcelProperty(value = N_DAY)
//    private String day;
//
//    @ExcelProperty(value = N_PUNCH_TYPE)
//    private Integer punchType;
//
//    @ExcelProperty(value = N_STANDARD_TIME)
//    private Date standardTime;
//
//    @ExcelProperty(value = N_PUNCH_TIME)
//    private Date punchTime;
//
//    @ExcelProperty(value = N_PUNCH_STATUS)
//    private Integer punchStatus;
//
//    @ExcelProperty(value = N_MINUTE)
//    private Integer minute;
//
//    @ExcelProperty(value = N_WORK_TIME)
//    private Integer workTime;
//
//    @ExcelProperty(value = N_DECISION_DESC)
//    private String decisionDesc;
//
//    @ExcelProperty(value = N_COORDINATE)
//    private String coordinate;
//
//    @ExcelProperty(value = N_LOCATION)
//    private String location;
//
//    @ExcelProperty(value = N_PUNCH_WIFI)
//    private String punchWifi;
//
//    @ExcelProperty(value = N_PUNCH_SOURCE)
//    private Integer punchSource;
//
//    @ExcelProperty(value = N_IS_CALIBRATION)
//    private Boolean isCalibration;
//
//    @ExcelProperty(value = N_IS_MAKE_UP)
//    private Boolean isMakeUp;
//
//    @ExcelProperty(value = N_HIS_STANDARD_TIME)
//    private String hisStandardTime;
//
//    @ExcelProperty(value = N_HIS_PUNCH_TIME)
//    private Date hisPunchTime;
//
//    @ExcelProperty(value = N_HIS_PUNCH_STATUS)
//    private Integer hisPunchStatus;
//
//    @ExcelProperty(value = N_PUNCH_SERIAL)
//    private String punchSerial;
//
//    @ExcelProperty(value = N_SITE_ID)
//    private String siteId;
//
//    @ExcelProperty(value = N_GMT_CREATE)
//    private Date gmtCreate;
//
//    @ExcelProperty(value = N_GMT_MODIFIED)
//    private Date gmtModified;

    @ExcelProperty(value = N_PUNCH_RANGE)
    private Integer punchRange;

    @ExcelProperty(value = N_STANDARD_TIME)
    private Date standardTime;
    @ExcelProperty(value = N_POSITION_NAME)
    private String positionName;

    @ExcelProperty(value = N_NORMAL_DAY)
    private Integer normalDay;

    @ExcelProperty(value = N_UNUSUAL_DAY)
    private Integer unusualDay;

    @ExcelProperty(value = N_UNUSUAL_COUNT)
    private Integer unusualCount;

    @ExcelProperty(value = N_BE_LATE_COUNT)
    private Integer beLateCount;

    @ExcelProperty(value = N_BE_LATE_TIME)
    private Integer beLateTime;

    @ExcelProperty(value = N_LEAVE_EARLY_COUNT)
    private Integer leaveEarlyCount;

    @ExcelProperty(value = N_LEAVE_EARLY_TIME)
    private Integer leaveEarlyTime;

    @ExcelProperty(value = N_LACK_COUNT)
    private Integer lackCount;

    @ExcelProperty(value = N_COUNT)
    private Integer count;

    @ExcelProperty(value = N_WORK_DATE)
    private String workDate;

    @ExcelProperty(value = N_ARRIVE_STATUS)
    private String arriveStatus;

    @ExcelProperty(value = N_ARRIVE_TIME)
    private String arriveTime;

    @ExcelProperty(value = N_ARRIVE_PLACE)
    private String arrivePlace;

    @ExcelProperty(value = N_LEAVE_STATUS)
    private String leaveStatus;

    @ExcelProperty(value = N_LEAVE_TIME)
    private String leaveTime;

    @ExcelProperty(value = N_LEAVE_PLACE)
    private String leavePlace;

    @ExcelProperty(value = N_TIME_DAY)
    private String timeDay;

}

